#include <18f4550.h>            //Se agrega el pic utilizado
#fuses XT,nowdt,noprotect,nolvp //Se configuran los fusibles (4MHz,NoPerroguardian,No proteje codigo fuente, No activa el low voltage programming)
#use delay (clock=4M)           //Configura retraso para cristal 
#use standard_io(D)             //Configura el puerto D para la recepccion del LCD 
#define use_portD_lcd TRUE      //Se habilita el puerto D.
#include <lcd.c> // Libreria de la LCD.
#include <kbd.c> // Libreria del teclado personalizado.
void main()
{
   char k;   // Se declara la variable para guardar el dato del teclado.
   int x,i=0,contador=0;
   lcd_init(); //Se inicializan las funciones de lcd y teclado respectivamente.
   kbd_init();
   port_b_pullups(TRUE); // Se configura en pullup el puerto B.
   lcd_putc("\fIngrese Numero");
   delay_ms(1000);
   lcd_putc('\f');
   //***************************************//  
   for (;;){
   k=kbd_getc();
   x=k-48; //Convertir a valor numerico
   if(contador>31){
   lcd_putc("\f");
   contador=0;i=0;}
   else{
   if(contador>15){   // Se va para la segunda linea.
   lcd_gotoxy(i+1,2);
   if(k!=0)
   if(k==('*')){lcd_putc('\f');contador=0;i=0;}
   else {printf(lcd_putc,"%u",x);
   delay_ms(100);
   i++;contador++;}
      
   }else{ //Inicia en la primera linea.
   if(k!=0){
   if(k==('*')){lcd_putc('\f');contador=0;i=0;}
   else printf(lcd_putc,"%u",x);
   delay_ms(100);
   contador++;}
   }
   }
   }
   }
   
